/**
 * Created by ibenchu-014 on 2016/12/26.
 */
/*上传实体*/
var uploader = Qiniu.uploader({
    runtimes: 'html5,flash,html4',      // 上传模式，依次退化
    browse_button: notadd.browse_button,         // 上传选择的点选按钮，必需
    uptoken : notadd.token, // uptoken是上传凭证，由其他程序生成
    get_new_uptoken: false,             // 设置上传文件的时候是否每次都重新获取新的uptoken
    unique_names: true,              // 默认false，key为文件名。若开启该选项，JS-SDK会为每个文件自动生成key（文件名）
    domain: notadd.download,     // bucket域名，下载资源时用到，必需
    max_file_size: notadd.max_size,             // 最大文件体积限制
    flash_swf_url: 'path/of/plupload/Moxie.swf',  //引入flash，相对路径
    max_retries: 3,                     // 上传失败最大重试次数
    chunk_size: '4mb',                  // 分块上传时，每块的体积
    auto_start: true,                   // 选择文件后自动上传，若关闭需要自己绑定事件触发上传
    init: {
        'FilesAdded': function(up, files) {
            plupload.each(files, function(file) {
                //console.log('文件载入');
                // 文件添加进队列后，处理相关的事情
            });
        },
        'BeforeUpload': function(up, file) {
            // console.log('文件上传前');
            //console.log(up);
            //console.log(file);
            // 每个文件上传前，处理相关的事情
        },
        'UploadProgress': function(up, file) {
            //console.log('文件上传中');
            /*百分比进度*/
            //console.log(file.percent);
            //上传进度
            $('#'+notadd.browse_button).val('上传进度('+file.percent+')%');
            // 每个文件上传时，处理相关的事情
        },
        'FileUploaded': function(up, file, info) {

            eval('var info ='+info);
            var domain = up.getOption('domain');
            var sourceLink = domain +"/"+ info.key; //获取上传成功后的文件的Url


            /*缩略图*/
            if(notadd.isThumb == 1){
                var thumb = Qiniu.imageView2({
                    mode: notadd.Tmode,  // 缩略模式，共6种[0-5]
                    w: notadd.Tw,   // 具体含义由缩略模式决定
                    h: notadd.Th,   // 具体含义由缩略模式决定
                    q: notadd.Tq,   // 新图的图像质量，取值范围：1-100
                    format: notadd.Tformat  // 新图的输出格式，取值范围：jpg，gif，png，webp等
                });
            }

            /*图片高级处理*/
            if(notadd.isSenior == 1){
                var senior = Qiniu.imageMogr2({
                    auto_orient: notadd.Mautoorient,  // 布尔值，是否根据原图EXIF信息自动旋正，便于后续处理，建议放在首位。
                    strip: notadd.Mstrip,   // 布尔值，是否去除图片中的元信息
                    thumbnail:notadd.Mthumbnail,   // 缩放操作参数
                    crop: notadd.Mcrop,  // 裁剪操作参数
                    gravity: notadd.Mgravity,    // 裁剪锚点参数
                    quality: notadd.Mquality,  // 图片质量，取值范围1-100
                    rotate: notadd.Mrotate,   // 旋转角度，取值范围1-360，缺省为不旋转。
                    format: notadd.Mformat,// 新图的输出格式，取值范围：jpg，gif，png，webp等
                    blur:notadd.Mblur    // 高斯模糊参数
                });
            }

            /*水印处理*/
            if(notadd.isWaterMark == 1){



                var waterMark;


                // var waterMark = Qiniu.watermark({
                //             mode: 1,  // 图片水印
                //             image: "https://ss2.baidu.com/6ONYsjip0QIZ8tyhnq/it/u=2613681524,2908289145&fm=80&w=179&h=119&img.JPEG", // 图片水印的Url，mode = 1时，必需
                //             dissolve: 50,          // 透明度，取值范围1-100，非必需，下同
                //             gravity: "SouthWest",  // 水印位置，为以下参数[NorthWest、North、NorthEast、West、Center、East、SouthWest、South、SouthEast]之一
                //             dx: 100,  // 横轴边距，单位：像素(px)
                //             dy: 100   // 纵轴边距，单位：像素(px)
                //         });


                switch (parseInt(notadd.Wmode))
                {

                    case  1:
                        var waterMark = Qiniu.watermark({
                            mode: parseInt(notadd.Wmode),  // 图片水印
                            image: notadd.Wimage, // 图片水印的Url，mode = 1时，必需
                            dissolve: notadd.Wdissolve,          // 透明度，取值范围1-100，非必需，下同
                            gravity: notadd.Wgravity,  // 水印位置，为以下参数[NorthWest、North、NorthEast、West、Center、East、SouthWest、South、SouthEast]之一
                            dx: notadd.Wdx,  // 横轴边距，单位：像素(px)
                            dy: notadd.Wdy   // 纵轴边距，单位：像素(px)
                        });
                        break;
                    case  2:
                        var waterMark = Qiniu.watermark({
                            mode: parseInt(notadd.Wmode),  // 文字水印
                            text: notadd.Wtext, // 水印文字，mode = 2时，必需
                            dissolve: notadd.Wdissolve,          // 透明度，取值范围1-100，非必需，下同
                            gravity: notadd.Wgravity,  // 水印位置，同上
                            fontsize: notadd.Wfontsize,         // 字体大小，单位：缇
                            font : notadd.Wfont,          // 水印文字字体
                            dx: notadd.Wdx,  // 横轴边距，单位：像素(px)
                            dy: notadd.Wdy,  // 纵轴边距，单位：像素(px)
                            fill: notadd.Wfill        // 水印文字颜色，RGB格式，可以是颜色名称
                        });
                        break;
                }

            }


            /*拼装连接   拼接顺序为  缩略图-》高级-》水印*/
            if(thumb != undefined)
            {
                sourceLink = sourceLink + '?' + thumb;
                if(senior != undefined)
                    sourceLink = sourceLink + '|' + senior;
                if(waterMark != undefined)
                    sourceLink = sourceLink + '|'+waterMark;
            }else if(senior != undefined)
            {
                sourceLink = sourceLink + '?' + senior;
                if(waterMark != undefined)
                    sourceLink = sourceLink + '|'+waterMark;

            }else if(waterMark != undefined){
                sourceLink = sourceLink + '?' + waterMark;
            }


            $('#'+notadd.target).val('http://'+sourceLink);
        },
        'Error': function(up, err, errTip) {
            //console.log('文件上传出错');
            //上传出错时，处理相关的事情
        },
        'UploadComplete': function() {
            //console.log('队列处理完毕');
            //队列文件处理完毕后，处理相关的事情
        },
        'Key': function(up, file) {
            // 若想在前端对每个文件的key进行个性化处理，可以配置该函数
            // 该配置必须要在unique_names: false，save_key: false时才生效

            var key = "";
            // do something with key here
            return key
        }
    }
});

